import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

/*
使用Vuex 数据存放 实现数据共享
store存放数据 想要改变数据 组件通过Dispatch方法调用Action(异步处理)
，Action通过commit方法调用Mutations(同步处理)，有时也可组件直接
调用Mutations
*/
// 默认设置为上海 本地缓存了城市的就使用这个缓存的城市
let defaultCity = '上海'
try {
  if (localStorage.city) {
    defaultCity = localStorage.city
  }
} catch (err) {
}

export default new Vuex.Store({
  state: {
    city: defaultCity
  },
  actions: {
    changeCity (ctx, city) {
      ctx.commit('changeCity', city)
    }
  },
  mutations: {
    changeCity (state, city) {
      state.city = city
      try {
        localStorage.city = city
      } catch (error) {
      }
    }
  }
})
